package com.example.demo.JavaFoundation.model;

import lombok.Data;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-05-13
 * Time: 17:40
 */
@Data
public class Person implements Comparable<Person> {
    private int id;
    private int age;
    private String name;

    public Person(int id, int age, String name) {
        this.id = id;
        this.age = age;
        this.name = name;
    }

    /**
     * 重写 compareTo 方法来实现自定义排序规则
     * compareTo 方法接收的参数 p 是要对比的对象，排序规则是用当前对象和要对比的对象进行比较,
     * 然后返回一个 int 类型的值。正序从小到大的排序规则是：使用当前的对象值减去要对比对象的值；
     * 而倒序从大到小的排序规则刚好相反：是用对比对象的值减去当前对象的值。
     * @param p
     * @return
     */
    @Override
    public int compareTo(Person p) {
        return p.getAge() - this.getAge();
    }
}
